#pragma once

class Socket
{
public:
    Socket(std::string ip = "", uint16_t port = 8080);

    int GetFd(); 
    
    void Bind();

    void Listen();
    
    int Accept();
    
    void Connect();

    ~Socket();
private:
    Socket(const Socket &) = delete;
    int _sockfd;
    std::string _ip;
    uint16_t _port;
};